1. Field of the Invention
The invention relates to data filtering. More particularly, the invention relates to systems and methods for filtering packets of data.
2. Description of Related Art
Digital data is typically transported from one location to another in packets having well-defined segments. FIG. 1, for example, illustrates a DVB DSM-CC Private Data Section MPE (MultiProtocol Encapsulation) packet 100 that may be used to transport audio, video or other data. Packet 100 includes several distinct segments that are defined by a protocol. For example, the MAC address is formed from different segments of packet 100.
Components that are configured to filter packets read information found in the different segments within the packet. For example, a digital video broadcast (DVB) receiver may read the information found in table id segment section 102, MAC address 1 segment 104, MAC address 2 segment 106 and MAC address 5 segment 108. Conventional hardware based filters are configured to read contiguous segments of data. When the desired data is found in clusters and is not contiguous, resources are wasted when excessively large filters are utilized to filter the clusters of data. Cluster is a generic term and may include a contiguous segment or a set of contiguous data within a packet or a segment of a packet. With respect to packet 100, table id 102 and MAC address segment 5 108 are found in non-contiguous segments or clusters. When a single filter is utilized to filter bits 0-40, the desired clusters are filtered along with several bits of unneeded data. As a result, the size of the filter is unnecessarily large.
Devices that incorporate fixed filters that are designed to filter data in predetermined segments of packets transmitted in predetermined protocols provide limited flexibility. Initially, the filters may be sized and configured in an optimal manner for a given application. However, when the device attempts to filter data that this transmitted in a slightly different protocol, the size and configuration of filters may not be optimized.
Some conventional devices utilize small fixed length filters and filter segments of packets in consecutive stages. As the number of consecutive filter stages increases, the time required to process the data also increases.
Therefore, there exists a need in the art for packet filtering systems and methods that provide flexibility to designers, optimize the use of filter components and minimize the number of consecutive filtering stages that are required to filter data.